package history.others;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

/**
 * 题目: 输入
 * 5 13
 * 13 31 10 9 20
 * 第一行, 一个是下面的输入数量, 一个是小美不喜欢的数字, 在下面每一个输入中,
 * 其所有质因子拼接形成的字符串只要含有13, 小美的不喜欢就+1, 每个数最多一次, 返回小美最多的不喜欢数量
 * 这个replaceAll好啊, 这里打算把[1, 2, 3]拼接成123, 直接toString中间有, ,
 * 逐个拼接又不好看, 所以replace / replaceAll, 挺好用。
 */
//public class Main {
//    public static void main(String[] args){
//        Scanner sc = new Scanner(System.in);
//        int n = sc.nextInt();
//        int k = sc.nextInt();
//        int[] inputArray = new int[n];
//        int temp1 = 0;
//        while(temp1 ++ < n){
//            inputArray[temp1 - 1] = sc.nextInt();
//        }
//        int disLikeCount = 0;
//        for(int i: inputArray){
//            if(containsDislike(i, k))
//                disLikeCount++;
//        }
//        System.out.println(disLikeCount);
//    }
//    public static boolean containsDislike(int inputElement, int k){
//        // 构建因子序列
//        List<String> factList = new LinkedList<>();
//        int limit = inputElement / 2;
//        for(int i = 1; i <= limit; i++){
//            if(inputElement % i == 0)
//                factList.add(String.valueOf(i));
//        }
//        factList.add("" + inputElement);
//        // 中间以为是必须是连续的几个拼接, 结果不是
////        String kString = "" + k;
////        for(String s: factList){
////            if(kString.startsWith(s)){
////                kString.replace(s,"");
////                if(kString.isEmpty()){
////                    System.out.println("true");
////                    return k
////                }
////            }
////        }
//
//        boolean res = factList.toString().replaceAll(", ","")
//                .replace("[","")
//                .replace("]","").contains("" + k);
//        return res;
//    }
//}
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();
        int[] inputArray = new int[n];
        int temp1 = 0;
        while(temp1 ++ < n){
            inputArray[temp1 - 1] = sc.nextInt();
        }
        int disLikeCount = 0;
        for(int i: inputArray){
            if(containsDislike(i, k))
                disLikeCount++;
        }
        System.out.println(disLikeCount);
    }
    public static boolean containsDislike(int inputElement, int k){
        if(inputElement == 0) return false;
        // 构建因子序列
        List<Integer> factList = new LinkedList<>();
        int limit = inputElement / 2;
        for(int i = 1; i <= limit; i++){
            if(inputElement % i == 0)
                factList.add(i);
        }
        factList.add(inputElement);
        boolean res = factList.toString().replaceAll(", ","")
                .replace("[","")
                .replace("]","").contains("" + k);
        return res;
    }
}